The present invention is related to the field of computer networks, and more particularly to networks including Asynchronous Transfer Mode (ATM) switches employing a connection-based multipoint-to-point tunneling protocol to transfer connectionless data traffic, such as data traffic carried by Internet Protocol (IP) packets.
Many computer networks employ connectionless protocols for transferring data among nodes. In a connectionless protocol, data is transferred as a series of one or more datagrams, each transmitted along a network segment when no higher-priority datagrams are being transmitted on the segment. A well-known example of such a connectionless protocol is the Internet Protocol (IP). IP datagrams, or packets, are forwarded by devices known as routers that determine the network segment on which the packet is to be forwarded based on a destination address included in the packet, and then forward the packet over the respective network segment.
Connectionless protocols differ from connection-oriented protocols, in which data traffic is sent over pre-established connections between sending and receiving nodes, much like a telephone call. For example, datagrams may become lost or suffer extensive delay in an error-prone or congested network. One source of delay is the need to dynamically determine and implement the routing of the datagram. In a connection-oriented network, traffic is routed along a previously established and allocated route, and thus routing in a connection-oriented network is generally simpler to implement and enables higher-speed packet forwarding.
Connection-oriented data protocols more closely resemble protocols used in standard audio telephony, and also better support streaming transmissions such as digital video. Thus as the need for transmission of voice, video, and data over a common network has increased, there has been a trend toward increasing use of connection-oriented protocols. Asynchronous Transfer Mode (ATM) is one example of a connection-oriented protocol that is receiving increased use. In fact, the use of ATM switches within the core of the public data communications network has become more common, and thus the ATM protocol has become an important industry-standard protocol.
Connection-oriented networks like ATM networks employ switches rather than routers to route traffic. Connections through a switch are established prior to the beginning of data transmission; the connections correspond to a path through multiple switch elements linking source and destination nodes. Once a path is established, it remains in place until specifically torn down, regardless of whether data traffic is being transmitted at any given time. Some connections may be long-lived; in fact, there is in some networks a notion of a “permanent” path that might be dedicated, for example, to carrying large volumes of traffic between specified sites.
Connection-oriented networks must use some means for identifying connections over which data is to be forwarded. ATM employs a 2-tier switching technique that uses two separate connection identifiers. An ATM data cell includes an 8-bit Virtual Path Identifier (VPI) as well as a 16-bit Virtual Channel Identifier (VCI). This technique allows network elements such as switches to make switching decisions based on either the VPI or the VCI. Although other arrangements are possible, networks commonly employ “VPI switching”, in which VCIs identify an individual connection between a source and a destination over a trunk-like path carrying numerous connections, and the VPIs are used to identify virtual paths within the network. Many virtual paths may be employed at a given physical port of a network element such as a switch.
In a large network that includes an ATM core network, the 8-bit limitation on VPI space (i.e., 256 paths) requires that the space be well managed to maximize the number of usable paths. For example, a large network could not afford to reserve some VPI bits for a separate signalling function, allocating only the remaining bits for virtual path identification, because such an allocation would result in too few allocatable virtual paths. Thus there is a general need to manage relatively small connection identifier spaces like the VPI space in a network using the ATM protocol.
Prior switches have used a connection-oriented protocol like ATM on inter-switch trunks that carry high-volume inter-switch data traffic. At one end of such a trunk, a switch concentrates data traffic originating at multiple input ports onto the trunk, while at the other end a switch de-multiplexes the traffic for distribution to its output ports. The switches have had interfaces to cell-based subnetworks like ATM, and also interfaces to frame- or packet-based subnetworks, an example of a packet subnetwork being the Internet Protocol (IP) network mentioned above. Thus the switches have been designed to forward both connection-oriented and connectionless data traffic over the connection-oriented inter-switch trunks.
The flow of connectionless data traffic in the connection-oriented inter-switch subnetwork is known as “tunneling”. Cells arriving at an intermediate switch along an inter-switch path are simply switched from one incoming virtual path to a corresponding outgoing virtual path, the correspondence having been previously established by a separate connection-establishment procedure. This operation contrasts with operation in a set of interconnected routers, in which each router is required to examine an address or other routing-related information in an arriving a packet, determine the next hop for the packet, and then transmit the packet over the next hop. Switches employing tunneling also retain router-like functionality, because such functionality is needed to establish virtual paths at connection-establishment time. However, the routing function is normally bypassed at data-transmission time.
One particular tunneling technique is known as multipoint-to-point tunneling, or MPT. Each switch in an MPT environment is the “root” of a set of converging paths emanating from the other switches, known as “leafs”. When a switch receives a datagram at a port, it determines which switch is connected to the subnetwork containing the destination node, and then forwards the datagram as a group of cells on the MPT path for which the destination switch is the root. Intermediate switches simply switch the cells from an incoming port to an outgoing port in accordance with the previously-established MPT path definition. The destination switch accumulates the cells, reconstructs the datagram, determines which output port the subnetwork containing the destination node is connected to, and sends the datagram over that port.